A wireless communications environment is quite harsh on the transmission of data when compared to a wire-line network. Factors such as Rayleigh fading, shadowing and the distance between transmitter and receiver can affect received radio signal strength and, hence, the quality or integrity of information being communicated. Many forms of data communication require extremely low error rates for accuracy. One way to achieve this over a wireless link is by increasing transmitted signal strength to reduce the effects of interference. However, this places a greater strain on a transmitter's power source (which leads to reduced battery life in the case of a mobile terminal) and increases interference with other users in the system, which in turn reduces overall system capacity.
Another approach to achieve low data error rates is to identify and retransmit any subsets of data that are in error or missing. This can be accomplished at different levels within the network. For example, TCP (Transmission Control Protocol) can be used to control a flow of IP (Internet Protocol) data packets at the network layer of the system. TCP is used at both a transmitter and receiver to determine if any IP data packets have been lost or received in error, and any such packets are retransmitted. However, TCP is designed primarily for wire-line networks, which generally have much lower probabilities of error than do wireless systems. The error rates normally encountered within a typical wireless connection would therefore cause TCP to be extremely inefficient in terms of its data throughput, i.e., in terms of the average amount of data that can be transmitted per unit time. In wireless systems, a protocol called RLP (Radio Link Protocol) is therefore customarily used at a lower network layer, the MAC (Media Access Control) layer, to increase the reliability of the wireless connection.
RLP functions by dividing large sets of data, e.g. an IP packet, into shorter units or blocks that are then transmitted across the wireless link. Each block has a sequence number and a CRC (Cyclical Redundancy Check) value associated with it. The sequence numbers are used to reassemble the RLP blocks at the receive end in the correct order and to identify any blocks that are missing and need to be retransmitted. The CRC value is a checksum used to determine whether or not each RLP block, as received, is correct or corrupted. The receiver checks the sequence numbers and the CRC values of the received RLP blocks and requests retransmission of only those blocks that are missing or corrupted. This results in a significant reduction in the visible error rate.
The desired error rate for a particular multimedia service can be used to determine the maximum number of retransmission attempts that will be made by the RLP. However, it also is desirable that the RLP, on a best-effort basis, provide a maximum allowable transmission delay for all data packets being sent. This maximum allowable transmission delay can be implemented by a delay bound for each data packet, which represents the time by which a transmitted packet must be present at the receiver, or else its associated QoS (Quality of Service) criteria will have been violated. The delay bound value will depend upon the type of service being offered and on the desired level of service, since some applications may require a shorter delay bound than others. Associating a delay bound with each IP packet being processed allows the transmitter to prioritize data packets appropriately in a packet-switched system.
A standard RLP algorithm in use today is called RLP III. This is an NAK (Negative AcKnowledgement) based algorithm with a fixed retransmission pattern. A receiver sends an NAK message to a transmitter whenever the receiver determines that it is missing one or more RLP blocks or that a block is corrupted. If a received RLP block has a higher sequence number than the receiver is expecting, it is known that one or more intervening RLP blocks have been lost in transit. In this situation, the receiver sends to the transmitter two NAK messages containing the sequence number of the missing RLP block, since sending an NAK message multiple times increases the probability that the transmitter will correctly receive at least one. If a copy of the missing block is not then received from the transmitter within a certain time-out period, three NAK messages are sent to the transmitter. If a copy of the missing block is still not received, then the RLP abandons retransmission attempts.
FIG. 1 illustrates one possible scenario for a conventional NAK-based retransmission scheme. Blocks 1, 2 and 3 all belong to the same IP packet (A). Block 1 is successfully transmitted to the receiver (indicated by the full arrow), but block 2 is lost during transmission (indicated by the shorter dashed arrow). When the receiver receives block 3, it is known that the receiver should, but does not, have a copy of block 2. At this point, the receiver sends an NAK message to the transmitter, requesting retransmission of block 2. A second copy of block 2 is then transmitted but it, too, is lost. However, the receiver started an NAK timer when it sent the original NAK message. In this case, since a valid copy of block 2 is not received before the timer expires, the receiver sends a follow-up NAK message to again request retransmission of block 2. The second attempt at resending block 2 is successful and the delay bound for IP packet A is satisfied.
FIG. 2 illustrates another possible scenario for a conventional NAK-based retransmission scheme. In this case, blocks 1 and 2 belong to IP packet (A), while block 3 belongs to a later IP packet (B). Once again, block 1 is successfully transmitted to the receiver, but block 2 is lost. When the receiver receives block 3, it is known that block 2 is missing and the receiver performs the above-described NAK message procedure to request retransmission of the missing data. However, block 3 is received after the delay bound for packet A, so by the time the receiver requests retransmission of block 2, a QoS delay criterion for packet A will already have been violated.
The trend is such that future generation wireless systems will focus more on providing multimedia services (e.g., video conferencing, audio streaming, web browsing and voice communication), rather than just voice communication. For each type of service, there is a required QoS level, which may be defined in terms of acceptable error rate and acceptable transmission delay. For example, a voice service can tolerate a higher error rate, but requires a short transmission delay. Conversely, transferring a file requires a very low error rate, but a longer transmission delay can be tolerated. The RLP algorithm used at the MAC layer of the radio system should therefore guarantee a desired level of QoS on a best-effort basis.
The conventional, purely NAK-based retransmission scheme is not well suited for use when QoS transmission delay guarantees must be met. The RLP III algorithm does not guarantee a maximum allowable delay time, and therefore cannot reliably be used in a QoS-based communications system.